package com.bite.book.mapper;

import com.bite.book.mode.BookInfo;
import com.bite.book.mode.PageRequest;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

//进行添加图书接口的完成；
@Mapper
public interface BookInfoMapper {
    @Insert("insert into book_info (book_name,author,count,price,publish,`status`)" +
    "values (#{bookName},#{author},#{count},#{price},#{publish},#{status})")
     Integer addBook(BookInfo bookInfo);
    //进行根据页码进行页码数据的查询；
    @Select("select * from book_info where `status`!=0 limit #{offset},#{pageSize}")
    List<BookInfo> selectBooksByPage(PageRequest pageRequest);
    //进行总图书数的返回；
    @Select("select count(1) from book_info where `status`!=0")
    Integer count();
    //进行查询图书操作；
    @Select("select * from book_info where `status` !=0 and id=#{bookId}")
    BookInfo queryBookById(Integer bookId);
    //进行修改图书操作；
    //有些图书不需要进行修改，所以使用动态SQL进行相关的正确修改；
    //但由于用到动态SQL进行使用注解进行比较麻烦，
    // 所以接下来进行使用xml方法进行相关动态SQL的使用；
    //使用xml的方法：1，进行依赖的注入；
    //             2.进行yml配置文件的设定；
    //             3.

    Integer updateBook(BookInfo bookInfo);
    //进行批量删除图书；
    Integer batchDelete(List<Integer> ids);
}

